package com.weareint.xxljob;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Objects;

/**
 *
 *
 * <pre>
 *  得到 指定 时分秒的 cron
 * </pre>
 *
 * @author johnny
 * @date 2021-08-02 2:39 下午
 */
public class CronUtils {

    /** "ss mm HH * * ?" */
    public static final SimpleDateFormat cronFormat = new SimpleDateFormat("ss mm HH * * ?");

    public static final SimpleDateFormat dayCronFormat = new SimpleDateFormat("ss mm HH dd * ?");

    /**
     * * 功能描述：日期转换cron表达式
     *
     * @param date ： 目前只有 HH:mm:ss
     * @return
     */
    public static synchronized String formatDateByPattern(Date date, SimpleDateFormat format) {
        String formatTimeStr = null;
        if (Objects.nonNull(date)) {
            if (format == null) {
                formatTimeStr = cronFormat.format(date);
            } else {
                formatTimeStr = format.format(date);
            }
        }
        return formatTimeStr;
    }

    /**
     * @param date : 时间点
     * @return : cron
     */
    public static String getCron(Date date) {
        return formatDateByPattern(date, null);
    }

    public static String getCron(Date date, SimpleDateFormat cronFormat) {
        return formatDateByPattern(date, cronFormat);
    }
}
